package com.nicolas.pattern.memento;

import java.util.ArrayList;

/**
 * Caretaker（负责人）：负责人又称为管理者，它负责保存备忘录，但是不能对备忘录的内容进行操作或检查。
 * 在负责人类中可以存储一个或多个备忘录对象，它只负责存储对象，而不能修改对象，也无须知道对象的实现细节。
 * @author cuilj --2017年2月13日 下午4:48:46
 * 
 * 在负责人类中定义一个集合来存储多个备忘录，每个备忘录负责保存一个历史状态，
 * 在撤销时可以对备忘录集合进行逆向遍历，回到一个指定的历史状态，
 * 而且还可以对备忘录集合进行正向遍历，实现重做(Redo)操作，即取消撤销，
 * 让对象状态得到恢复。
 *
 */
public class MementoCaretaker {
	//定义一个集合来存储多个备忘录  
    private ArrayList mementolist = new ArrayList();  
  
    public ChessmanMemento getMemento(int i) {  
        return (ChessmanMemento)mementolist.get(i);  
    }  
  
    public void setMemento(ChessmanMemento memento) {  
        mementolist.add(memento);  
    }  
}
